LinuC-1 - 101試験 - 1.04:リポジトリとパッケージ管理 - 1.04.3 yumコマンドによるパッケージ管理

Last Update : August 21 2022 17:47:14

     

a. yumによるパッケージ管理

yum コマンドはパッケージがアップロードされているサーバーに問い合わせて、パッケージのダウンロードからインストールまでを自動的に実施するコマンドです。また、依存関係があるパッケージ(動作に必要な他のパッケージ)も自動的に入手してインストールします。システムにインストール済みのパッケージのアップデートも可能です。CentOSやFedora Coreなどでも標準として採用されています。

1.yum のインストール

yum は Fedora Core にデフォルトでインストールされています。インストールされていない場合はダウンロードします。

# rpm -q yum yum-2.0.7-1.1


2.yum の前準備

yum を使う前に前もって /etc/yum.conf を編集しておきます。この設定ファイルでは、yum でパッケージをダウンロードしてくる際に接続するサーバー名を指定します。出来る限り日本にあるサーバーで回線速度の速いサーバー(KDDI や理研、IIJ など)を指定するべきです(※FC3 になると、/etc/yum.conf は直接編集せずとも、/etc/yum.repos.d/ 以下にオリジナルなファイルを作成し、そこにサーバー名を記述しておけば良いようになっています。)

# vi /etc/yum.conf
[base] name=Fedora Core $releasever - $basearch - Base baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$ARCH/os/ ftp://ftp.riken.go.jp/fedora/core/$releasever/$ARCH/os/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/$releasever/$ARCH/os/ [updates-released] baseurl=http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releasever/$ARCH/ ftp://ftp.riken.go.jp/fedora/core/updates/$releasever/$ARCH/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releasever/$ARCH/


3.GPGキーチェック

Fedora Core 3 ではじめてパッケージをインストールしようとした場合、以下のようなエラーが発生します。これは、FC 3ではパッケージのGPGキーチェックがデフォルトでオンになっているためです。

# yum install telnet
You have enabled checking of packages via GPG keys. This is a good thing. However, you do not have any GPG public keys installed. You need to download the keys for packages you wish to install and install them. You can do that by running the command:rpm --import public.gpg.key For more information contact your distribution or package provider.

yumコマンドを実行する前に、以下のコマンドを実行してGPGキーをインストールしておきます。

rpm --import /usr/share/rhn/RPM-GPG-KEY-fedora


4.yum の基本的な使用法

yum の使い方は簡単です。ソフトウェアをインストールするには、以下のコマンドを実行します。

# yum install パッケージ名

削除する場合は、

# yum remove パッケージ名

インストールされているパッケージ全てをまとめてアップデートするには、yum updateを実行します(注:カーネルもアップグレードされます)。このとき、-y オプションをつけると途中で現れるメッセージに対して全て「Yes」で答えるようになります。予め全てのパッケージをアップグレードすることが決定しているような場合にはつけたほうが良いでしょう。なお、前もってアップデートパッケージがあるかどうかを確認する場合には、yum check-updateを実行します。

# yum check-update
Gathering header information file(s) from server(s) Server: Fedora Core 3 - i386 - Base Server: Fedora Core 3 - i386 - Released Updates Finding updated packages Downloading needed headers Name Arch Version Repo ---------------------------------------------------------- arts i386 8:1.4.2-0.fc3.3 updates-released cups i386 1:1.1.22-0.rc1.8.6 updates-released cups-libs i386 1:1.1.22-0.rc1.8.6 updates-released vim-common i386 1:6.3.086-0.fc3.1 updates-released vim-enhanced i386 1:6.3.086-0.fc3.1 updates-released vim-minimal i386 1:6.3.086-0.fc3.1 updates-released
# yum update or # yum -y update

特定のパッケージのみをアップデートする場合は、以下のようにします。

# yum update telnet


5.yum update でアップデートを除外したいパッケージの指定

yum update でまとめてupdate したいけれど特定のパッケージだけはアップデートを除外したいというような場合もあります。その場合は、/etc/yum.conf の[main] に以下のような行を追加します。

# vi /etc/yum.conf
[main] exclude= gcc* kde* openssh* kernel-smp*


6.yum のキャッシュをクリアする [ yum clean ]

長い間、yum を使用しているとダウンロードしたアップデートパッケージ等のキャッシュ用のファイルも溜まってきます。yum のキャッシュは/var/cache/yum に格納されており、現在どのぐらいの容量を占有しているかdu で確認しておきます。必要なければ、yum clean でダウンロードしたパッケージや古いヘッダを削除します。

# du -sh /var/cache/yum/
32M /var/cache/yum/
# yum clean


7.パッケージの検索 [ yum search ]

パッケージの検索を行いたい場合は、yum search を実行します。検索の対象となるは、RPMファイルの「Name」、「Packager」、「Dummary」、「Description」の各フィールドです。

# yum search telnet
Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.fairway.ne.jp * extras: mirror.fairway.ne.jp * updates: www.ftp.ne.jp ============================= N/S Matched: telnet ============================== perl-Net-Telnet.noarch : Net-Telnet Perl module telnet.i686 : The client program for the Telnet remote login protocol telnet-server.i686 : The server program for the Telnet remote login protocol krb5-appl-clients.i686 : Kerberos-aware telnet, ftp, rcp, rsh and rlogin clients krb5-appl-servers.i686 : Kerberos-aware telnet, ftp, rcp, rsh and rlogin servers tn5250.i686 : 5250 Telnet protocol and Terminal Name and summary matches only, use "search all" for everything.


8.利用可能なパッケージの一覧を表示 [ yum list ]

# yum list
xmms-skins i386 1:1.2.10-9 base xojpanel i386 0.91-9 base xorg-x11-Xdmx i386 6.8.2-1.FC3.13 updates-released xorg-x11-Xnest i386 6.8.2-1.FC3.13 updates-released ・・・

インストール済みのパッケージ一覧を表示するには、yum list installed を実行します。その他にも、available(インストール可能なパッケージのリストを表示する)、updates(アップデート可能なパッケージのリストを表示する)、recent(最近追加されたパッケージのリストを表示する)のオプションをつけることができます。

# yum list installed


9.指定したパッケージの情報を表示 [ yum info ]

パッケージの情報を表示するには、yum info パッケージ名 を実行します。yum info だけだと、利用可能な全パッケージの情報が全て表示されてしまいます。その他にも、available(インストール可能なパッケージのリストを表示する)、updates(アップデート可能なパッケージのリストを表示する)、recent(最近追加されたパッケージのリストを表示する)のオプションをつけることができます。

# yum info openssh
省略 Name : openssh Arch : i386 Version : 3.9p1 Release : 8.0.2 Size : 730.83 kB Group : アプリケーション/インターネット Repo : Locally Installed Summary : SSHプロトコルのバージョン1と2のOpenSSH 実装 Description: OpenSSHはSSH (Secure SHell)プロトコルのOpenBSDによる実装です。SSHは rlogin や rsh の代わりに使用するプログラムで、 信頼性の低い 2 台のホストの間で安全でないネットワークを経由して、 暗号化された安全な通信を実行できます。X11 接続および任意の TCP/IP ポートも安全なチャネル経由で転送できます。共有鍵認証でサーバにパスワード なしでアクセスすることもできます。 このパッケージには、OpenSSH のクライアントとサーバーの両方に必要なコアファイルが 含まれています。このパッケージを利用するには、openssh-clients または openssh-server、あるいはその両方をインストールする必要があります。


10.特定のファイルが提供されているパッケージ名を調べる [ yum provides ]

パッケージをインストールしようとした際に、特定のライブラリが開けない(存在しない)ために、インストールできなかったり、コンパイルエラーになったりすることはよくある話しです。そこで存在しないと言われているそのファイルがどのパッケージに含まれているかを調べることで、どのパッケージをインストールすればいいのかがすぐにわかります。

# yum provides libg2c.so.0
省略 Looking in available packages for a providing package No packages found Looking in installed packages for a providing package Installed package: libf2c.i386 0:3.4.4-2.fc3 matches with /usr/lib/libg2c.so.0 Installed package: libf2c.i386 0:3.4.4-2.fc3 matches with /usr/lib/libg2c.so.0.0.0 Installed package: libf2c.i386 0:3.4.4-2.fc3 matches with libg2c.so.0 3 results returned


11.FC3 でyumがアクセスするサーバを指定する

FC3からは、/etc/yum.conf のデフォルトの記述方法が変更されており、/etc/yum.repos.d/ 以下にオリジナルのファイルを作成し、そこにyum でアクセスするためのサーバーを指定すればいいようになっています。まずは、base 用とupdates 用の2つのオリジナルファイルを作成します。

# vi /etc/yum.repos.d/local-base
http://ftp.kddilabs.jp/Linux/packages/fedora/core/$releasever/$ARCH/os/ ftp://ftp.riken.go.jp/fedora/core/$releaseve/$ARCH/os/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/$releaseve/$ARCH/os/
# vi /etc/yum.repos.d/local-updates
http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/$releaseve/$ARCH/ ftp://ftp.riken.go.jp/fedora/core/updates/$releaseve/$ARCH/ ftp://ftp.iij.ad.jp/pub/linux/fedora/core/updates/$releaseve/$ARCH/

次に、/etc/yum.repos.d/fedora.repoと/etc/yum.repos.d/fedora-updates.repoを以下のように編集しておきます。

# vi /etc/yum.repos.d/fedora.repo
[base] name=Fedora Core $releasever - $basearch - Base #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/ #mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever mirrorlist=file:///etc/yum.repos.d/local-base enabled=1 gpgcheck=1
# vi /etc/yum.repos.d/fedora-updates.repo
[updates-released] name=Fedora Core $releasever - $basearch - Released Updates #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/ #mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever mirrorlist=file:///etc/yum.repos.d/local-updates enabled=1 gpgcheck=1

● yum コマンド構文
  yum [オプション] [パッケージファイル名]

● yum コマンドオプション
 コマンド 説明
 check-update アップデート可能なパッケージの一覧を表示
 clean ダウンロードしたパッケージと古いヘッダを削除する
 clean-oldheaders 古いヘッダを削除
 clean packages ダウンロードしたパッケージを削除
 info 利用可能なパッケージの一覧を表示
 info <パッケージ名> 指定したパッケージの情報を表示
 install <パッケージ名> 指定したパッケージのインストール
 list 利用可能なパッケージの一覧を表示
 list installed インストール済みのパッケージ一覧を表示
 list updates アップデート可能なパッケージの一覧を表示
 provides <パッケージ名> パッケージに含まれるファイルの一覧を表示
 remove <パッケージ名> 指定したパッケージをアンインストールする
指定したパッケージの依存関係があるパッケージは削除するかどうか確認を求める
 search <キーワード> キーワードでパッケージを検索する
 update アップデート可能な全パッケージをアップデート
 update <パッケージ名> 指定したパッケージをアップデート


c. yumdownloaderによるrpmファイルのダウンロード

yumdownloader は、rpmファイルを個別にダウンロードします。

● yumdownloader コマンド構文

何も指定しなければ、カレントディレクトリにダウンロードされます。

  yumdownloader [オプション] [パッケージファイル名]

● yumdownloader オプション
 --destdir=DESTDIR
 --urls
別の場所にダウンロードする場合
 --resolve 依存関係で必要なパッケージをダウンロードする必要がある場合
 --source RPMではなく、ソースファイル(SRPM)をダウンロード
 --archlist=ARCHLIST アーキテクチャを指定


z. 出題範囲概要

概要 :
  • yum コマンドでリポジトリを利用したパッケージ管理ができる。

詳細 :
  • リポジトリの概念を理解している。
  • パッケージがインストールされているか否かにかかわらず、特定のファイルまたはライブラリを含むパッケージを見つける。
    yum
  • バージョン、内容物、依存関係、パッケージの整合性、インストール状態などのパッケージ情報を取得できる(パッケージがインストールされているか否かにかかわらず)。
    /etc/yum.repos.d/
    /etc/yum.conf
    yumdownloader

  [ 例題 ] 


         

    www.it-shikaku.jp